Fix issue #76: next sprint item (P2): Dogfood: run ShellFor…#126
Fix issue #76: next sprint item (P2): Dogfood: run ShellFor…#126
Conversation
- When isServer=true (headless Linux without GPU), offer OLLAMA_HOST configuration - Allow Goose installation on server mode (works with remote Ollama via OLLAMA_HOST) - Update setup wizard to guide users through remote GPU endpoint setup - Keep backward compatibility for local Ollama on Mac/GPU systems This enables dogfood on jared-box (headless WSL2 + RunPod GPU) by allowing remote Ollama configuration instead of skipping Ollama entirely.
There was a problem hiding this comment.
Pull request overview
Updates the ShellForge setup wizard to better support “server mode” (Linux without GPU) by guiding users toward remote Ollama usage and enabling Goose as a driver in that environment.
Changes:
- Replace the server-mode “skip Ollama” messaging with an interactive remote Ollama (OLLAMA_HOST) configuration prompt.
- Offer/install Goose in both local and server modes, with server-specific guidance for remote Ollama usage.
- Update the final setup summary to include remote Ollama + Goose usage hints in server mode.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| @@ -155,9 +155,26 @@ model := "" | |||
| // ── Step 1: Ollama (skip on headless server) ── | |||
There was a problem hiding this comment.
The step header comment says Ollama is “skip[ped] on headless server”, but server mode now performs remote Ollama (OLLAMA_HOST) configuration. Update this comment to match the new behavior so future edits don’t reintroduce the old assumption.
| // ── Step 1: Ollama (skip on headless server) ── | |
| // ── Step 1: Ollama setup (local install or remote OLLAMA_HOST on server) ── |
| fmt.Print(" Configure remote Ollama (OLLAMA_HOST) for GPU endpoint? [Y/n] ") | ||
| if confirm(reader) { | ||
| fmt.Print(" Enter OLLAMA_HOST (e.g., http://192.168.1.100:11434): ") | ||
| ollamaHost := readLine(reader) | ||
| if ollamaHost != "" { | ||
| fmt.Printf(" → Set OLLAMA_HOST=%s before running shellforge\n", ollamaHost) |
There was a problem hiding this comment.
In server mode, these prompts use confirm()/readLine(), which treat EOF/empty input as “yes”. If shellforge setup is run non-interactively (stdin closed/EOF), it will auto-enter the remote configuration flow and emit potentially confusing output. Consider detecting non-TTY/EOF and defaulting to “no” (skip prompts) in server mode.
| } else { | ||
| fmt.Println(" ⚠ Install failed — try: brew install --cask block-goose") | ||
| } | ||
| } |
There was a problem hiding this comment.
The install-failure hint always suggests brew install --cask block-goose, which is misleading on Linux/server mode (where brew likely isn’t available and the attempted installer was the curl/bash script). Adjust the fallback guidance based on GOOS (e.g., re-run the GitHub installer script, link to Goose install docs, or provide apt/yum instructions) so server users aren’t sent down the wrong path.
| } else { | |
| fmt.Println(" ⚠ Install failed — try: brew install --cask block-goose") | |
| } | |
| } | |
| } else { | |
| if runtime.GOOS == "darwin" { | |
| fmt.Println(" ⚠ Install failed — try: brew install --cask block-goose") | |
| } else { | |
| fmt.Println(" ⚠ Install failed — try re-running:") | |
| fmt.Println(" curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash") | |
| fmt.Println(" See Goose install docs: https://github.com/block/goose") | |
| } | |
| } | |
| } |
Auto-generated by Clawta via Octi Pulpo dispatch
Task: brain-76-1775375551
Adapter: clawta
Type: code-gen